1. Technical Field
The invention relates generally to data transmission and more particularly to a process for optimizing the assembling of asynchronous characters into data packets for transmission through a packet network.
2. Description of the Prior Art
In accordance with recently developing needs to quickly access or provide information, there has been a proliferation of various terminal instruments installed in the business community that receive and transmit data through a character asynchronous format. These instruments include among others: terminals, printers, personal computers operating as terminal emulators, and host computers. A communications link for transferring the data between these terminal instruments is generally provided by telephone transmission systems. These systems are increasing becoming digital in operation employing packet switching networks which use a bit synchronous format for transmission of the data. Operation of a packet switching network is such that messages longer than 1000 bits, for example, are typically broken up into separate messages or "packets" before being transmitted. These packets also contain some additional bits added for address and administrative purposes. And various adapter arrangements are used for performing the packet assembly operation and interfacing the asynchronous terminal instruments to the packet switching network.
Transmission costs in a packet switching network are primarily a function of the number of packets transmitted through the network during each period of communication between terminal instruments. It is important in most operations, therefore, to minimize the number of packets transmitted by the network by collecting as many characters as possible into each packet. But data throughput and responsiveness are affected by the delay encountered by each character in transferring through the network and existing packetizing arrangements cause a major component of that delay.
Terminal instruments transmit asynchronous data in two basic modes, echoplexing and block transfer. Echoplexing occurs when a user types in a character which is transmitted to and then is echoed back by the far-end terminal instrument. By way of example, the characters may be commands to a screen editor provided to manipulate an image on a screen. Block transfers are contained in a spurt of data that occurs during a file transfer between terminal instruments or in response to a users command to a far-end terminal instrument to display a large amount of data.
There are conflicting packet assembly requirements for echoplexing and block transfers. For echoplexing, the packet assembly operation should be as rapid as possible to minimize delays for the user. Assembling the characters into the largest possible packets is of secondary interest because of the relatively slow rate that the characters are usually transmitted from the terminal instrument, e.g., a user typing. During echoplexing operation, the need for the user to get rapid feedback of character echo from the far-end terminal instrument far outweighs the need to assemble large packets.
For block transfers, the packet assembly operation is such that the characters are assembled into the largest possible packets to minimize the number of packets and therefore costs. The packet assembly operation should also be as fast as possible, however, since the time it takes to send the last partially filled packet in a data spurt is critical for operation with many file transfer protocols. In these protocols, a subsequent block transfer will not occur until the previous block transfer has been received and acknowledged by the far end terminal instrument.
For interfacing asynchronous terminal instruments or the like to a packet switching network, an adapter arrangement such as a Packet Assembler/Disassembler (PAD) is typically used to insure that all packets transmitted to the network will be in a specific format. The PAD serves as a concentrator that collects individual characters from one or more terminal instruments and periodically outputs a properly formatted packet containing the most recent character harvest. The International Telegraph and Telephone Consultative Committee (CCITT) Recommendations X.3, X.28 and X.29 define the CCITT PAD interfaces. X.3 defines the PAD parameters, X.28 defines the terminal-PAD interface and X.29 defines the PAD-computer (data terminal equipment) interface.
In accordance with the above indicated conflicting packet assembly requirements, the PAD must optimize the number of characters it accumulates before forwarding a packet, such as occurs when the associated terminal instrument is operating in a block transfer mode. And it must also minimize the delay caused by waiting for more characters, such as occurs when the associated terminal instrument is operating in an echoplexing mode. In an effort to optimize the assembling of characters for each mode before forwarding a packet, an idle timer defined in CCITT, Recommendation X.3 is currently employed in PADs. In operation, this timer provides a data forwarding time-out signal or is reset with each new character received. Thus after the reception of a character by the PAD, if no new characters are received before the idle timer expires, a partially filled packet is forwarded. If new characters are received by the PAD at a spacing less than the idle timer value, however, the idle timer is reset with each character received and forwarding occurs only upon the meeting of some other data forwarding condition such as when the packet is full or upon receipt of a data forwarding character.
In accordance with CCITT Recommendation X.3, the range in time for this idle timer may be set between 50 milliseconds and 12.75 seconds in 50 milliseconds intervals. This idle timer does not minimize the delay caused by the PAD waiting for more characters, particularly at the faster asynchronous data speeds. Due to its inability to distinguish between the reception of an isolated character and the beginning of a data spurt, it waits a minimum of 50 milliseconds before sending an isolated character. The idle timer is also unable to determine when the end of the data spurt, or the end of a block transfer in the data spurt, occurs and again waits a minimum of 50 milliseconds before forwarding an unfilled packet of characters.
It is therefore desirable to have the asynchronous data received from associated terminal instruments quickly and efficiently assembled by an adapter arrangement, irrespective of whether a terminal instrument is operating in a block transfer mode or an echoplexing mode, without the noted disadvantages of existing adapter arrangements.